﻿using System.Linq;
using EFDataModel;

namespace ContactManagement.Models.DynamicData
{
    /// <summary>
    /// Model zum Bearbeiten der passenden Gruppenrechte für den aktuellen DynamicDataType
    /// </summary>
    public class DynamicDataGroupRightsModel 
    {
        /// <summary>
        /// Sind keine Rechte gesetzt, hat jeder Vollzugriff
        /// Eine Auflistung der Gruppen die nur Leserechte haben für dieses Eingabefeld
        /// </summary>
        public IOrderedEnumerable<UserGroup> GroupsWithReadRights { get; set; }

        /// <summary>
        /// Sind keine Rechte gesetzt, hat jeder Vollzugriff
        /// Eine Auglistung der Gruppen die nicht in den Leserechten enthalten sind
        /// </summary>
        public IOrderedEnumerable<UserGroup> GroupsNotWithReadRights { get; set; }

        /// <summary>
        /// Sind keine Rechte gesetzt, hat jeder Vollzugriff
        /// Eine Auflistung der Gruppen die Lese und Schreibrechte haben für dieses Eingabefeld
        /// </summary>
        public IOrderedEnumerable<UserGroup> GroupsWithWriteRights { get; set; }

        /// <summary>
        /// Sind keine Rechte gesetzt, hat jeder Vollzugriff
        /// Eine Auglistung der Gruppen die keine Lese und Schreibrechte haben für dieses Eingabefeld
        /// </summary>
        public IOrderedEnumerable<UserGroup> GroupsNotWithWriteRights { get; set; }

        /// <summary>
        /// Der aktuelle Dynamische Datentyp, dienst nur Zur Anzeige von Daten!
        /// </summary>
        public EFDynamicDataType CurrentDynamicDataType { get; set; }
    }
}
